/*
 * Copyright (c) 2012 ASINFO (Asesores Informaticos), todos los derechos
 * reservados. Este software es confidencial y su informacion es propiedad de
 * ASINFO(Asesores Informaticos). No debe revelar tal informacion y debe usarla
 * unicamente de acorde con los terminos de uso.
 */

package ec.linde.modulos.proyectos.servicio.impl;

import java.util.List;
import java.util.Map;

import javax.ejb.EJB;
import javax.ejb.Stateless;

import ec.linde.modulos.dao.DatosBaseProyectosDao;
import ec.linde.modulos.proyectos.servicio.ServicioDatosBaseProyectos;
import ec.linde.modulos.recursos.FuncionesUtiles;
import ec.linde.persistencia.entidades.ProdCabeceraProforma;
import ec.linde.persistencia.entidades.ProdClientes;
import ec.linde.persistencia.entidades.ProdConceptos;
import ec.linde.persistencia.entidades.ProdPartidaDetalle;
import ec.linde.persistencia.entidades.ProdSucursales;
import ec.linde.persistencia.entidades.SeadUsuarios;

/**
 * TODO: Agregar descripcion
 * 
 * FechaCreacion: 10/10/2014
 * 
 * @author: Asinfo
 * @version: 1.0
 */
@Stateless
public class ServicioDatosBaseProyectosImpl implements ServicioDatosBaseProyectos {

	@EJB
	private DatosBaseProyectosDao datosBaseProyectosDao;

	/*
	 * (non-Javadoc)
	 * 
	 * @see ec.linde.modulos.proyectos.servicio.ServicioDatosBaseProyectos#buscarClientePorId(int)
	 */
	@Override
	public ProdClientes buscarClientePorId(int id) {
		return datosBaseProyectosDao.buscarClientePorId(id);
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see ec.linde.modulos.proyectos.servicio.ServicioDatosBaseProyectos#buscarUsuarioPorId(int)
	 */
	@Override
	public SeadUsuarios buscarUsuarioPorId(int id) {
		return datosBaseProyectosDao.buscarUsuarioPorId(id);
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see ec.linde.modulos.proyectos.servicio.ServicioDatosBaseProyectos#buscarUsuarioPorId(int)
	 */
	@Override
	public ProdSucursales buscarSucursalPorId(int id) {
		return datosBaseProyectosDao.buscarSucursalPorId(id);
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see ec.linde.modulos.proyectos.servicio.ServicioDatosBaseProyectos#buscarProformaPorId(int)
	 */
	@Override
	public ProdCabeceraProforma buscarProformaPorId(int id) {
		return datosBaseProyectosDao.buscarProformaPorId(id);
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see ec.linde.modulos.proyectos.servicio.ServicioDatosBaseProyectos#buscarConceptoPorId(int)
	 */
	@Override
	public ProdConceptos buscarConceptoPorId(int id) {
		return datosBaseProyectosDao.buscarConceptoPorId(id);
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see ec.linde.modulos.proyectos.servicio.ServicioDatosBaseProyectos#buscarPartidaPorId(int)
	 */
	@Override
	public ProdPartidaDetalle buscarPartidaPorId(int id) {
		return datosBaseProyectosDao.buscarPartidaPorId(id);
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see ec.linde.modulos.proyectos.servicio.ServicioDatosBaseProyectos#getObtenerUsuarios()
	 */
	@Override
	public List<SeadUsuarios> getObtenerUsuarios() {
		return datosBaseProyectosDao.getObtenerUsuarios();
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see ec.linde.modulos.proyectos.servicio.ServicioDatosBaseProyectos#getObtenerSucucursal()
	 */
	@Override
	public List<ProdSucursales> getObtenerSucucursal() {
		return datosBaseProyectosDao.getObtenerSucucursal();
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see ec.linde.modulos.proyectos.servicio.ServicioDatosBaseProyectos#getObtenerClientes()
	 */
	@Override
	public List<ProdClientes> getObtenerClientes() {
		return datosBaseProyectosDao.getObtenerClientes();
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see ec.linde.modulos.proyectos.servicio.ServicioDatosBaseProyectos#getObtenerProforma()
	 */
	@Override
	public List<ProdCabeceraProforma> getObtenerProformas() {
		// TODO Auto-generated method stub
		return datosBaseProyectosDao.getObtenerProformas();
	}

	@Override
	public List<ProdConceptos> getObtenerConceptos() {
		return datosBaseProyectosDao.getObtenerConceptos();
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see ec.linde.modulos.proyectos.servicio.ServicioDatosBaseProyectos#getObtenerPartidas(ec.linde.persistencia.entidades.ProdCabeceraProforma)
	 */
	@Override
	public List<ProdPartidaDetalle> getObtenerPartidas(ProdCabeceraProforma prodCabeceraProforma) {
		return datosBaseProyectosDao.getObtenerPartidas(prodCabeceraProforma);
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see ec.linde.modulos.proyectos.servicio.ServicioDatosBaseProyectos#getReporteMovimientoBancario(int, int, java.lang.String, boolean,
	 * java.util.Map)
	 */
	@Override
	public List<ProdCabeceraProforma> obtenerListaPorPaginaProformas(int startIndex, int pageSize, String sortField, boolean sortOrder,
			Map<String, String> filter) {
		List<ProdCabeceraProforma> lista = datosBaseProyectosDao.obtenerListaPorPaginaProformas(startIndex, pageSize, sortField, filter);
		if (sortField != null) {
			FuncionesUtiles.ordenaLista(lista, sortField, sortOrder);
		}
		return lista;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see ec.linde.modulos.proyectos.servicio.ServicioDatosBaseProyectos#contarPorCriterioProforma(java.util.Map)
	 */
	@Override
	public int contarPorCriterioProforma(Map<String, String> filter) {
		return datosBaseProyectosDao.contarPorCriterioProforma(filter);
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see ec.linde.modulos.proyectos.servicio.ServicioDatosBaseProyectos#cargarDetalleProforma(int)
	 */
	@Override
	public ProdCabeceraProforma cargarDetalleProforma(int idProforma) {
		return datosBaseProyectosDao.cargarDetalleProforma(idProforma);
	}

	@Override
	public void guardar(ProdPartidaDetalle partida) {
		datosBaseProyectosDao.guardar(partida);
	}

}
